/*
 * @Author: 9ilk 3535851673@qq.com
 * @Date: 2024-11-23 15:18:21
 * @LastEditors: 9ilk 3535851673@qq.com
 * @LastEditTime: 2024-11-23 16:32:10
 * @FilePath: /zhuang/Pthread/Main.cc
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
#include "Pthread.hpp"
#include <unordered_map>
#include <memory>
using namespace std;
using namespace ThreadModule;
#define NUM 10

using thread_t = shared_ptr<ThreadModule::Thread<int>>;

void Count(int max)
{
    for (int i = 0; i < max; i++)
    {
        cout << i << endl;
    }
}

int main()
{

    Thread<int> t(Count, 10);

    t.Start();
    t.Join();
    // unordered_map<string, shared_ptr<ThreadModule::Thread>> threads;
    // for (int i = 0; i < NUM; i++)
    // {
    //     //
    //     thread_t t = std::make_shared<ThreadModule::Thread>([]()
    //                                                         {
    //       while(true)
    //       {
    //         cout << "hello world" << endl;
    //         sleep(1);
    //       } });
    //         threads[t->Name()] = t;
    // }
    // // 启动
    // for (auto &thread : threads)
    // {
    //     thread.second->Start();
    // }
    // // 等待
    // for (auto &thread : threads)
    // {
    //     thread.second->Join();
    // }

    // ThreadModule::Thread t([](){
    //     while(true)
    //     {
    //         cout << "hello world" << endl;
    //         sleep(1);
    //     }
    // });
    // t.Start();
    // cout << t.Name() << "is running.." << endl;
    // sleep(5);

    // t.Stop();
    // cout << "stop thread..." << t.Name() << endl;
    // sleep(1);

    // t.Join();
    // cout << "Join thread..." << t.Name() << endl;

    return 0;
}